অ্যাপাচি নিফাই (Apache NiFi) একটি শক্তিশালী ডেটা ফ্লো ম্যানেজমেন্ট টুল, যা ডেটা সংগ্রহ, প্রক্রিয়া এবং প্রেরণের কাজগুলো সহজে করতে সহায়ক। NiFi এর REST API এর মাধ্যমে আপনি NiFi এর প্রায় সব কার্যক্রম স্বয়ংক্রিয়ভাবে পরিচালনা করতে পারেন। NiFi REST API এর মাধ্যমে বিভিন্ন ডেটা ফ্লো পরিচালনা, কনফিগারেশন আপডেট, এবং প্রসেসর বা সিস্টেমের অবস্থা পরীক্ষা করা সম্ভব হয়।
এখানে আমরা NiFi REST API ব্যবহার করে স্বয়ংক্রিয় কার্যক্রম পরিচালনা করার কিছু গুরুত্বপূর্ণ দিক আলোচনা করবো।
NiFi REST API এর মাধ্যমে Automation এর সুবিধা
NiFi REST API এর মাধ্যমে নিম্নলিখিত কাজগুলো করা সম্ভব:
- ফ্লো ফাইল তৈরি এবং পরিচালনা: নতুন ফ্লোফাইল তৈরি, ফ্লোফাইলের অ্যাট্রিবিউটস পরিবর্তন বা তাদের প্রক্রিয়া করা।
- প্রসেসর কনফিগারেশন এবং স্টার্ট/স্টপ: NiFi এর প্রসেসরগুলোর স্টার্ট এবং স্টপ করা, কনফিগারেশন পরিবর্তন করা।
- সিস্টেম মনিটরিং: NiFi এর সার্ভার, প্রসেসর, এবং অন্যান্য রিসোর্সের স্ট্যাটাস মনিটর করা।
- ডেটা ফ্লো স্ট্যাটাস: ডেটা ফ্লো সম্পর্কিত অবস্থা এবং তথ্য সংগ্রহ করা।
- নতুন রিসোর্স তৈরি: প্রসেস গ্রুপ, প্রসেসর বা কাস্টম প্রসেসরের জন্য নতুন রিসোর্স তৈরি করা।
NiFi REST API Endpoint Structure
NiFi REST API সাধারণত একটি base URL এর মাধ্যমে অ্যাক্সেস করা যায়। NiFi ইনস্ট্যান্সের API URL সাধারণত এইভাবে হয়:
http://<nifi_host>:<port>/nifi-api
এটি আপনার NiFi ইনস্ট্যান্সের হোস্টনেম এবং পোর্ট অনুযায়ী পরিবর্তিত হবে।
NiFi REST API সাধারণ স্ট্রাকচার
API endpoint এর URL সাধারণত এই কাঠামো অনুসরণ করে:
http://<nifi_host>:<port>/nifi-api/<resource>
Resources গুলোর মধ্যে অনেক গুরুত্বপূর্ণ তথ্য পাওয়া যায়, যেমন:
/process-groups: প্রসেস গ্রুপের তথ্য/processors: প্রসেসর কনফিগারেশন/flowfile-queues: ফ্লোফাইল কিউ এর তথ্য/status: সার্ভারের অবস্থা/controller-services: কন্ট্রোলার সেবার কনফিগারেশন
NiFi REST API ব্যবহার করে Automation এর উদাহরণ
1. প্রসেসর স্টার্ট এবং স্টপ করা
NiFi REST API ব্যবহার করে একটি প্রসেসর স্টার্ট বা স্টপ করা যেতে পারে। PUT এবং POST HTTP মেথডের মাধ্যমে এই কার্যক্রম করা হয়।
প্রসেসর স্টার্ট করা
API Endpoint:
POST /nifi-api/processors/<processor_id>/run-status
Request Body:
{
"state": "RUNNING"
}
প্রসেসর স্টপ করা
API Endpoint:
POST /nifi-api/processors/<processor_id>/run-status
Request Body:
{
"state": "STOPPED"
}
এই API কলের মাধ্যমে আপনি NiFi এর একটি নির্দিষ্ট প্রসেসর চালু বা বন্ধ করতে পারবেন।
2. নতুন প্রসেসর তৈরি করা
নতুন প্রসেসর তৈরি করার জন্য POST HTTP মেথড ব্যবহার করা হয়।
API Endpoint:
POST /nifi-api/process-groups/<process_group_id>/processors
Request Body:
{
"component": {
"type": "org.apache.nifi.processors.standard.GetFile",
"name": "Get File Processor",
"config": {
"properties": {
"Input Directory": "/path/to/directory"
}
}
}
}
এই API কলের মাধ্যমে আপনি একটি নতুন প্রসেসর তৈরি করতে পারবেন, যেখানে প্রাসঙ্গিক কনফিগারেশনও প্রেরণ করতে হবে।
3. ফ্লোফাইল ম্যানেজমেন্ট
ফ্লোফাইল পরিচালনার জন্য NiFi REST API তে GET, POST, এবং DELETE মেথড ব্যবহার করা হয়।
ফ্লোফাইল স্ট্যাটাস চেক করা
API Endpoint:
GET /nifi-api/flowfile-queues
এই API কলের মাধ্যমে ফ্লোফাইল কিউ এবং তার স্ট্যাটাস দেখতে পারবেন।
ফ্লোফাইল ডিলিট করা
API Endpoint:
DELETE /nifi-api/flowfile-queues/<queue_id>
এই API কলের মাধ্যমে একটি নির্দিষ্ট ফ্লোফাইল কিউ মুছে ফেলা যাবে।
4. নেটওয়ার্ক/সার্ভার মনিটরিং
NiFi REST API ব্যবহার করে সার্ভার এবং নেটওয়ার্ক স্ট্যাটাস মনিটর করা যায়। উদাহরণস্বরূপ, সার্ভারের বর্তমান অবস্থা জানতে GET মেথড ব্যবহার করা হয়।
সার্ভারের স্ট্যাটাস চেক করা
API Endpoint:
GET /nifi-api/system-diagnostics
এই API কলের মাধ্যমে NiFi সার্ভারের স্বাস্থ্য এবং পারফরম্যান্স স্ট্যাটাস পেতে পারেন।
NiFi REST API ব্যবহারের জন্য প্রয়োজনীয় টুলস
NiFi REST API ব্যবহার করার জন্য কিছু টুলসের সাহায্য নিতে পারেন:
- Postman: REST API গুলি টেস্ট এবং ডেভেলপ করার জন্য একটি জনপ্রিয় টুল।
- curl: কমান্ড লাইন থেকে HTTP অনুরোধ পাঠানোর জন্য ব্যবহারযোগ্য।
- Python (Requests Library): Python কোড ব্যবহার করে NiFi REST API কল করতে পারেন।
সারাংশ
NiFi REST API এর মাধ্যমে আপনি NiFi সিস্টেমের অধিকাংশ কাজ স্বয়ংক্রিয়ভাবে সম্পাদন করতে পারেন। এটি ডেটা ফ্লো, প্রসেসর কনফিগারেশন, সার্ভার স্ট্যাটাস মনিটরিং, এবং ফ্লোফাইল পরিচালনা করার জন্য একটি শক্তিশালী সরঞ্জাম। NiFi REST API ব্যবহার করে সিস্টেমের কার্যক্রম নিয়ন্ত্রণ, কনফিগারেশন পরিবর্তন এবং সম্পূর্ণ অটোমেশন সহজে সম্পন্ন করা যেতে পারে।
Read more